home *** CD-ROM | disk | FTP | other *** search
- // Evaluates an XPath against a given node
- function webdeveloper_evaluateXPath(node, xPath)
- {
- var namespaceResolver = null;
- var namespaceURI = webdeveloper_getNamespaceURI(node);
- var result = null;
- var resultList = new Array();
- var results = null;
-
- // If the node has a namespace URI
- if(namespaceURI)
- {
- namespaceResolver = new WebDeveloperNamespaceResolver(namespaceURI);
- xPath = xPath.replace(/\/\//gi, "//webdeveloper:");
- }
-
- results = new XPathEvaluator().evaluate(xPath, node, namespaceResolver, XPathResult.ANY_TYPE, null);
-
- // Loop through the results
- while((result = results.iterateNext()) != null)
- {
- resultList.push(result);
- }
-
- return resultList;
- }
-
- // Returns the namespace URI for a node
- function webdeveloper_getNamespaceURI(node)
- {
- // If the node has an owner document
- if(node.ownerDocument)
- {
- return node.ownerDocument.documentElement.namespaceURI;
- }
-
- return node.documentElement.namespaceURI;
- }
-
- // Constructs a namespace resolver object
- function WebDeveloperNamespaceResolver(namespaceURI)
- {
- this.namespaceURI = namespaceURI;
- }
-
- // Looks up the namespace URI
- WebDeveloperNamespaceResolver.prototype.lookupNamespaceURI = function(prefix)
- {
- return this.namespaceURI;
- }
-